package com.example.study2.ThisReference;

/**
 * 没有使用this引用的问题示例
 * 为什么要有this引用
 * 形参名不小心与成员变量名相同时，区分不了成员变量和局部变量。
 */
public class Date1 {
    public int year;
    public int month;
    public int day;

    /**
     * 设置日期的方法 - 参数名与成员变量名相同
     * 这种情况下无法区分哪个是成员变量，哪个是参数
     */
    public void setDay(int year, int month, int day) {
        // 这里的赋值操作实际上只是参数自己赋给自己
        // 成员变量的值并没有被修改
        year = year;    // 参数year赋值给参数year（无意义）
        month = month;  // 参数month赋值给参数month（无意义）
        day = day;      // 参数day赋值给参数day（无意义）
    }

    public void printDate() {
        System.out.println(year + "/" + month + "/" + day);
    }

    public static void main(String[] args) {
        Date1 d = new Date1();
        d.setDay(2020, 9, 15);
        d.printDate();  // 输出：0/0/0（成员变量没有被正确赋值）
    }
}